package fibonacci;

/**
 * 一、斐波那契数列模型
 * 2. 三步问题
 * 2024-10-18
 */
public class demo2 {
    public int waysToStep(int n) {
        int MOD = (int)1e9 + 7;
        int[] dp = new int[n+1];

        if(n == 1 || n == 2)  return n;
        if(n == 3)  return 4;

        dp[1] = 1; dp[2] = 2; dp[3] = 4;

        for (int i = 4; i <= n; i++) {
            dp[i] = ((dp[i-1] + dp[i-2]) % MOD + dp[i-3]) % MOD;
        }
        return dp[n];
    }
}
